﻿using Abp.Domain.Entities;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;

namespace HCD.Entities
{
    [Table("ProjectTeam")]
    public class ProjectTeam : Entity<int>, ISoftDelete, IMustHaveTenant
    {
        /// <summary>
        /// 关联需求，空为直接组团
        /// </summary>
        public int? RequirementID { get; set; }
        /// <summary>
        /// 项目联系人
        /// </summary>
        public Guid OperatorID { get; set; }
        /// <summary>
        /// 项目名称（S）
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string ProjectTitle { get; set; }

        /// <summary>
        /// 项目描述（S）
        /// </summary>
        [Column(TypeName = "nvarchar(2000)")]
        public string ProjectDescription { get; set; }

        /// <summary>
        /// 项目标签（S）
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string ProjectTags { get; set; }

        /// <summary>
        /// 项目开发环境要求
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string EnvironmentDevTags { get; set; }

        /// <summary>
        /// 项目部署系统要求
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string EnvironmentOSTags { get; set; }

        /// <summary>
        /// ClientTags运行终端要求
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string ClientTags { get; set; }
        /// <summary>
        /// 计划开始日期
        /// </summary>
        public DateTime? PlanStart { get; set; }
        /// <summary>
        /// 计划完成日期
        /// </summary>
        public DateTime? PlanFinish { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 项目发起人
        /// </summary>
        public Guid CreateOperator { get; set; }
        /// <summary>
        /// 项目总金额预估
        /// </summary>
        [Column(TypeName = "decimal(12,2)")]
        public decimal TotalPrice { get; set; }
        /// <summary>
        /// 实际开始日期
        /// </summary>
        public DateTime? ActualStart { get; set; }
        /// <summary>
        /// 实际完成日期
        /// </summary>
        public DateTime? ActualFinish { get; set; }
        /// <summary>
        /// 项目状态(0:组建 1:开始 9完成 -1:关闭)；项目参与者均可见      
        /// </summary>
        public Enums.ProjectTeamStatus Status { get; set; }
        public bool IsDeleted { get; set; }
        public int TenantId { get; set; }
    }
}
